<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <h1 data-lake-id="ZNVKN" id="ZNVKN"><span data-lake-id="ua797c12b" id="ua797c12b">典型回答</span></h1>
  <p data-lake-id="ua8a95e56" id="ua8a95e56"><br></p>
  <p data-lake-id="u32148c26" id="u32148c26"><span data-lake-id="u36909361" id="u36909361">分库分表之后，会带来很多问题。</span></p>
  <p data-lake-id="u7ed5d2aa" id="u7ed5d2aa"><br></p>
  <p data-lake-id="u8fcd2e4b" id="u8fcd2e4b"><span data-lake-id="ucb0dab1f" id="ucb0dab1f">首先，做了分库分表之后，所有的读和写操作，都需要带着分表字段，这样才能知道具体去哪个库、哪张表中去查询数据。如果不带的话，就得支持全表扫描。</span></p>
  <p data-lake-id="u021dadf2" id="u021dadf2"><br></p>
  <p data-lake-id="ub2023cea" id="ub2023cea"><span data-lake-id="u78bbe845" id="u78bbe845">但是，单表的时候全表扫描比较容易，但是做了分库分表之后，就没办法做扫表的操作了，如果要扫表的话就要把所有的物理表都要扫一遍。</span></p>
  <p data-lake-id="u5e5800f0" id="u5e5800f0"><br></p>
  <p data-lake-id="u08bc0ab5" id="u08bc0ab5"><span data-lake-id="ue6a2bc30" id="ue6a2bc30">还有，一旦我们要从多个数据库中查询或者写入数据，就有很多事情都不能做了，比如</span><strong><span data-lake-id="uf156284b" id="uf156284b">跨库事务就是不支持的。</span></strong></p>
  <p data-lake-id="u36ef7ae7" id="u36ef7ae7"><br></p>
  <p data-lake-id="ud2e38dab" id="ud2e38dab"><img src="https://cdn.nlark.com/yuque/0/2022/png/5378072/1672305434815-a75a8b9d-add0-46ca-b047-1073d2df0882.png?x-oss-process=image%2Fwatermark%2Ctype_d3F5LW1pY3JvaGVp%2Csize_33%2Ctext_SmF2YSA4IEd1IFA%3D%2Ccolor_FFFFFF%2Cshadow_50%2Ct_80%2Cg_se%2Cx_10%2Cy_10"></p>
  <p data-lake-id="u5c9aee6b" id="u5c9aee6b"><br></p>
  <p data-lake-id="u15b5696d" id="u15b5696d"><span data-lake-id="uc7912ffe" id="uc7912ffe">所以，分库分表之后就会带来因为不支持事务而导致的数据一致性的问题。</span></p>
  <p data-lake-id="ua0e82445" id="ua0e82445"><span data-lake-id="u121c4046" id="u121c4046">​</span><br></p>
  <p data-lake-id="u3be5e0bc" id="u3be5e0bc"><br></p>
  <p data-lake-id="ucd439bc2" id="ucd439bc2"><span data-lake-id="ucb8f588d" id="ucb8f588d">其次，</span><strong><span data-lake-id="ud55287c4" id="ud55287c4">做了分库分表之后，以前单表中很方便的分页查询、排序等等操作就都失效了。因为我们不能跨多表进行分页、排序。</span></strong></p>
  <p data-lake-id="u7d2e57d6" id="u7d2e57d6"><br></p>
  <p data-lake-id="ufbbd18f7" id="ufbbd18f7"><span data-lake-id="u1a9bc86b" id="u1a9bc86b">除此之外，还有一些其他的问题，比如</span><strong><span data-lake-id="ucb5c2271" id="ucb5c2271">二次分表的问题，一致性ID的问题</span></strong><span data-lake-id="u3df7c9fd" id="u3df7c9fd">等等。</span></p>
  <p data-lake-id="u6e4d444b" id="u6e4d444b"><span data-lake-id="uf45cc42a" id="uf45cc42a">​</span><br></p>
  <p data-lake-id="u5b4a27d8" id="u5b4a27d8"><span data-lake-id="ua6c57949" id="ua6c57949">​</span><br></p>
  <p data-lake-id="u3d6dd563" id="u3d6dd563"><span data-lake-id="ue3a74a1f" id="ue3a74a1f">二次分表的问题可以用一致性哈希解决：</span></p>
  <p data-lake-id="u12b9832f" id="u12b9832f"><br></p>
  <p data-lake-id="u365372bf" id="u365372bf"><span data-lake-id="u8ab17da4" id="u8ab17da4">分布式ID可以参考：</span></p>
  <p data-lake-id="u001816e1" id="u001816e1"><span data-lake-id="u3433442e" id="u3433442e">​</span><br></p>
  <p data-lake-id="uadff4363" id="uadff4363"><br></p>
 </body>
</html>